{
  "RaftEnabled": true,
  "RaftDataDir": "{{ orchestrator_path }}/orchestrator",
  "RaftBind": "{{ ansible_default_ipv4.address }}",
  "DefaultRaftPort": {{ orchestrator_raft | default('10008') }},
  "RaftNodes": ["{{ orchestrator_servers | list | join('", "') }}"],
  "Debug": false,
  "EnableSyslog": true,
  "ListenAddress": "{{ ansible_default_ipv4.address }}:{{ orchestrator_ui |default('3002') }}",
  "MySQLTopologyUser": "{{ orchestrator_mysql_user | default('orchestrator') }}",
  "MySQLTopologyPassword": "{{ orchestrator_mysql_pass | default('changeme') }}",
  "MySQLTopologyCredentialsConfigFile": "",
  "MySQLTopologySSLPrivateKeyFile": "{{ orchestrator_cert_path }}/server.key",
  "MySQLTopologySSLCertFile": "{{ orchestrator_cert_path }}/server.crt",
  "MySQLTopologySSLCAFile": "{{ orchestrator_cert_path }}/ca-cert.pem",
  "MySQLTopologySSLSkipVerify": true,
  "MySQLTopologyUseMutualTLS": false,
  "BackendDB": "sqlite",
  "SQLite3DataFile": "{{ orchestrator_path }}/orchestrator/orchestrator.sqlite3",
  "MySQLConnectTimeoutSeconds": 10,
  "DefaultInstancePort": {{ orchestrator_mysql_port | default('3306') }},
  "DiscoverByShowSlaveHosts": true,
  "InstancePollSeconds": 5,
  "DiscoveryIgnoreReplicaHostnameFilters": [
    "a_host_i_want_to_ignore[.]example[.]com",
    ".*[.]ignore_all_hosts_from_this_domain[.]example[.]com",
    "a_host_with_extra_port_i_want_to_ignore[.]example[.]com:3307"
  ],
  "UnseenInstanceForgetHours": 240,
  "SnapshotTopologiesIntervalHours": 0,
  "InstanceBulkOperationsWaitTimeoutSeconds": 10,
  "HostnameResolveMethod": "none",
  "MySQLHostnameResolveMethod": "",
  "SkipBinlogServerUnresolveCheck": true,
  "ExpiryHostnameResolvesMinutes": 60,
  "RejectHostnameResolvePattern": "",
  "ReasonableReplicationLagSeconds": 30,
  "ProblemIgnoreHostnameFilters": [],
  "VerifyReplicationFilters": false,
  "ReasonableMaintenanceReplicationLagSeconds": 60,
  "CandidateInstanceExpireMinutes": 60,
  "AuditLogFile": "",
  "AuditToSyslog": true,
  "RemoveTextFromHostnameDisplay": ".mydomain.com:3306",
  "ReadOnly": false,
  "AuthenticationMethod": "basic",
  "HTTPAuthUser": "{{ orchestrator_ui_user }}",
  "HTTPAuthPassword": "{{ orchestrator_ui_pass }}",
  "AuthUserHeader": "",
  "PowerAuthUsers": [
    "*"
  ],
  "ClusterNameToAlias": { "{{ orchestrator_servers | list | join('": "' + orchestrator_cluster_name + '", "') }}": "{{ orchestrator_cluster_name }}" },
  "SlaveLagQuery": "",
  "DetectClusterAliasQuery": "SELECT '{{ orchestrator_cluster_name }}'",
  "DetectClusterDomainQuery": "",
  "DetectInstanceAliasQuery": "",
  "DetectPromotionRuleQuery": "",
  "DataCenterPattern": "[.]([^.]+)[.][^.]+[.]mydomain[.]com",
  "PhysicalEnvironmentPattern": "[.]([^.]+[.][^.]+)[.]mydomain[.]com",
  "PromotionIgnoreHostnameFilters": [],
  "DetectSemiSyncEnforcedQuery": "",
  "ServeAgentsHttp": false,
  "AgentsServerPort": "{{ ansible_default_ipv4.address }}:{{ orchestrator_port_agent | default('3001') }}",
  "AgentsUseSSL": {{ orchestrator_ui_ssl | bool | to_json }},
  "AgentsUseMutualTLS": false,
  "AgentSSLSkipVerify": true,
  "AgentSSLPrivateKeyFile": "{{ orchestrator_cert_path }}/server.key",
  "AgentSSLCertFile": "{{ orchestrator_cert_path }}/server.crt",
  "AgentSSLCAFile": "{{ orchestrator_cert_path }}/ca-cert.pem",
  "AgentSSLValidOUs": [],
  "UseSSL": {{ orchestrator_ui_ssl | bool | to_json }},
  "UseMutualTLS": false,
  "SSLSkipVerify": true,
  "SSLPrivateKeyFile": "{{ orchestrator_cert_path }}/server.key",
  "SSLCertFile": "{{ orchestrator_cert_path }}/server.crt",
  "SSLCAFile": "{{ orchestrator_cert_path }}/ca-cert.pem",
  "SSLValidOUs": [],
  "URLPrefix": "",
  "StatusEndpoint": "/api/status",
  "StatusSimpleHealth": true,
  "StatusOUVerify": false,
  "AgentPollMinutes": 60,
  "UnseenAgentForgetHours": 6,
  "StaleSeedFailMinutes": 60,
  "SeedAcceptableBytesDiff": 8192,
  "PseudoGTIDPattern": "",
  "PseudoGTIDPatternIsFixedSubstring": false,
  "PseudoGTIDMonotonicHint": "asc:",
  "DetectPseudoGTIDQuery": "",
  "BinlogEventsChunkSize": 10000,
  "SkipBinlogEventsContaining": [],
  "ReduceReplicationAnalysisCount": true,
  "FailureDetectionPeriodBlockMinutes": 60,
  "RecoveryPeriodBlockSeconds": 3600,
  "RecoveryIgnoreHostnameFilters": [],
  "RecoverMasterClusterFilters": [
    "*"
  ],
  "RecoverIntermediateMasterClusterFilters": [
    "*"
  ],
  "OnFailureDetectionProcesses": [
    "echo 'Detected {failureType} on {failureCluster}. Affected replicas: {countSlaves}' >> /tmp/recovery.log"
  ],
  "PreFailoverProcesses": [
    "echo 'Will recover from {failureType} on {failureCluster}' >> /tmp/recovery.log"
  ],
  "PostFailoverProcesses": [
    "echo '(for all types) Recovered from {failureType} on {failureCluster}. Failed: {failedHost}:{failedPort}; Successor: {successorHost}:{successorPort}' >> /tmp/recovery.log"
  ],
  "PostUnsuccessfulFailoverProcesses": [],
  "PostMasterFailoverProcesses": [
    "echo 'Recovered from {failureType} on {failureCluster}. Failed: {failedHost}:{failedPort}; Promoted: {successorHost}:{successorPort}' >> /tmp/recovery.log"
  ],
  "PostIntermediateMasterFailoverProcesses": [
    "echo 'Recovered from {failureType} on {failureCluster}. Failed: {failedHost}:{failedPort}; Successor: {successorHost}:{successorPort}' >> /tmp/recovery.log"
  ],
  "CoMasterRecoveryMustPromoteOtherCoMaster": true,
  "DetachLostSlavesAfterMasterFailover": true,
  "ApplyMySQLPromotionAfterMasterFailover": true,
  "PreventCrossDataCenterMasterFailover": false,
  "PreventCrossRegionMasterFailover": false,
  "MasterFailoverDetachSlaveMasterHost": false,
  "MasterFailoverLostInstancesDowntimeMinutes": 0,
  "PostponeSlaveRecoveryOnLagMinutes": 0,
  "OSCIgnoreHostnameFilters": [],
  "GraphiteAddr": "",
  "GraphitePath": "",
  "GraphiteConvertHostnameDotsToUnderscores": true
}
